Publié le
22 avril 2024
Dans le vaste univers de l'administration de serveurs web, la sécurité est une préoccupation majeure. La transmission de données entre clients et serveurs étant de plus en plus vitale, sa protection devient indispensable. Dans ce contexte, la mise en place d'un serveur web sur une distribution Linux implique une tâche fondamentale : garantir la sécurité des données transmises. Au cœur de cette démarche se trouve la mise en œuvre du protocole de chiffrement TLS (Transport Layer Security). Pour toute personne impliquée dans le développement ou l'hébergement web, la maîtrise du chiffrement TLS est non seulement une bonne pratique, mais aussi une compétence essentielle pour la protection des informations sensibles échangées sur le web.
Voici le deuxième article de notre série : Installation de serveurs web sur différentes distributions Linux, où nous allons explorer le processus d’installation et de configuration d’un proxy inverse/serveur web léger et performant : « NGINX », afin d’activer le chiffrement TLS sur des systèmes d’exploitation populaires tels que Red Hat Enterprise Linux (RHEL), Debian et OpenSUSE.
Ce guide détaillé fournit des étapes claires et pratiques pour mettre en œuvre une couche de sécurité supplémentaire sur vos serveurs web NGINX, garantissant ainsi la confidentialité et l'intégrité des communications.
Installation et configuration de NGINX pour le chiffrement TLS sur RHEL/Debian/OpenSUSE
Mais avant de se lancer dans le processus de configuration, il est essentiel de s'assurer que les conditions préalables suivantes sont remplies :
Prérequis :
Mise à jour des paquets existants. Des privilèges spéciaux seront nécessaires pour certaines opérations tout au long de la procédure :
RHEL
dnf update -y
Remarque : Utilisez yum si dnf n’est pas installé sur la machine.
Ubuntu
apt update –y
Remarque : Utilisez apt-get si apt n’est pas installé sur la machine.
OpenSUSE
zypper rafraîchir
Blocage du processus NGINX :
Écrivez les différentes commandes pour chaque système :
RHEL
dnf install -y nginx
Ubuntu
sudo apt install nginx
OpenSUSE
zypper install -y nginx
Remarque : Le service ne devrait pas encore être démarré. Vous pouvez le démarrer avec la `systemctl start nginx` . Il écoutera ensuite par défaut sur le port 80. Ce protocole n'est pas sécurisé ; il est fortement recommandé d'utiliser HTTPS (port 443) et non HTTP (port 80).
Vous souhaitez mettre en œuvre ces pratiques PKI ?
Bénéficiez de conseils d'experts sur la mise en œuvre de solutions PKI sécurisées pour votre organisation.
Obtenez l'aide d'un expert2. Si un pare-feu est configuré, il doit autoriser la communication via le port 443. Par exemple, avec la commande suivante pour le pare-feu :
firewall-cmd --permanent --add-port={443/tcp}
3. Enfin, pour recharger le service pare-feu :
pare-feu-cmd --recharger
Configuration de NGINX pour le chiffrement TLS :
Pour configurer NGINX, il est possible soit de modifier le fichier /etc/nginx/nginx.conf , soit de créer .conf dans /etc/nginx/conf.d . Si ces fichiers de configuration sont stockés ailleurs, un lien symbolique peut être créé dans le conf.d pour pointer vers le fichier de configuration.
Dans le fichier de configuration choisi, il est possible de créer un serveur virtuel entièrement configurable.
serveur { écoute 443 ssl; nom_serveur www.hostname.com; certificat_ssl www.hostname.com.crt; clé_certificat_ssl www.hostname.com.key; protocoles_ssl TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; }
Remarques :
Le serveur doit écouter sur le port 443 et le protocole SSL doit être activé.
Server_name est le nom d'hôte qui sera utilisé et qui exposera le serveur virtuel.
Il convient de préciser le chemin d'accès au certificat du serveur et à sa clé privée. Stream et Horizon permettent d'émettre et de gérer les certificats en toute simplicité.
Les protocoles SSL sont configurables. Pour une sécurité renforcée, il est fortement recommandé d'activer uniquement TLSv1.2 et TLSv1.3, ou seulement TLSv1.3.
Le cache de sessions SSL permet de mettre en cache les sessions SSL et de les partager entre les nœuds de calcul. Dans la configuration précédente, 10 mégaoctets étaient autorisés, soit environ 4 000 sessions.
Le paramètre ssl_session_timeout définit la durée maximale d'exécution de la session avant expiration.
le www.hostname.com.key doit être configuré pour n'être accessible qu'à l'utilisateur root :
chown root:root /chemin/www.hostname.com.key
chmod 600 /chemin/www.hostname.com.key
Pour appliquer les modifications à la configuration NGINX, redémarrez le service :
Testez votre configuration NGINX :
nginx -t
alors
systemctl redémarrer nginx
Conclusion:
En conclusion, l'installation d'un serveur web sur une distribution Linux est une étape cruciale de la mise en place d'un environnement d'hébergement web. Le choix de la distribution dépend de vos besoins et préférences spécifiques ; elle offre des fonctionnalités robustes et des optimisations de performance pour une diffusion efficace du contenu web. En suivant les instructions d'installation appropriées à la distribution Linux choisie, vous pouvez rapidement configurer un serveur web fiable et commencer à héberger vos sites web ou applications pour les rendre accessibles au monde entier.